package com.example.kuozhan.mapper;

import com.example.kuozhan.entity.Product;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Name: ProductMapper
 * @Author: 西风残叶
 * @Company: 朝兮网络工作室
 * @Data: 2023/11/14 13:56
 */
@Mapper
public interface ProductMapper {

    /**
     * 统计商品数量
     */
    Integer countProduct();

    /**
     * 根据价格查询数据
     *
     * @param price
     * @return
     */
    Integer countByPrice(double price);

    /**
     * 多参数查询时候，建议使用 @Param("price") 为参数定义占位符名称
     *
     * @param price 价格
     * @param num   数量
     * @return 统计结果
     */
    Integer countByPriceNum(@Param("price") double price, @Param("num") int num);

    Product findById(Integer id);

    List<Product> findByTitle(String name);

    /**
     *
     * 插入数据
     * @param title :标题
     * @param price :价格
     * @param quantity :数量
     * @return 返会结果
     */
    Integer saveProduct(@Param("title") String title,
                        @Param("price") Double price,
                        @Param("quantity") Integer quantity);

    /**
     * 使用POJO传递参数
     * @param product
     * @return
     */
    Integer saveProductItem(Product product);

    /**
     * 更新商品信息
     * @param product : 商品对象
     * @return :返回数据
     */
    Integer updateProduct(Product product);

    Integer updataProductPart(Product product);
}